package com.chromatic.competition.view.profile;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import com.chromatic.competition.R;
import com.chromatic.competition.model.UserInformation;
import com.chromatic.competition.utils.UserManager;
import com.chromatic.competition.utils.UserLoginStatus;

public class ResumeActivity extends AppCompatActivity {
    private EditText editTextResume;
    private Button buttonEdit;
    private final UserManager userManager = new UserManager();

    private boolean isEditing = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_resume);

        editTextResume = findViewById(R.id.editText_resume);
        buttonEdit = findViewById(R.id.button_edit);
        Button buttonSubmit = findViewById(R.id.button_submit);

        UserLoginStatus userLoginStatus = new UserLoginStatus(this);
        int currentUserId = userLoginStatus.getCurrentUserId();

        Log.d("ResumeActivity","该简历对应的UserID是为" + currentUserId);

        // 从服务器获取简历内容并显示在编辑框中
        fetchResumeContent(currentUserId);

        // 保存按钮点击事件
        buttonEdit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                editResumeContent();
            }
        });

        // 提交按钮点击事件
        buttonSubmit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                submitResume(currentUserId);
            }
        });

        ImageView backButton = findViewById(R.id.backButton);
        backButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onBackPressed(); // 调用系统返回操作
            }
        });
    }

    // 从服务器获取简历内容并显示在编辑框中
    private void fetchResumeContent(int userId) {
        // 发起GET请求获取简历内容
        userManager.getUserInformation(userId, new UserManager.UserInformationCallback() {
            @Override
            public void onSuccess(UserInformation userInformation) {
                // 获取到用户信息
                String resumeContent = userInformation.getResume();
                editTextResume.setText(resumeContent);
            }
            @Override
            public void onError(String errorMessage) {
                // 处理错误情况
                // 可以在这里给出默认的简历内容，或者显示错误信息给用户
            }
        });
    }

    // 保存简历内容
    private void editResumeContent() {
        if (isEditing) {
            // 禁止编辑
            editTextResume.setEnabled(false);
            // 修改按钮文本
            buttonEdit.setText("允许编辑");
            isEditing = false;
        } else {
            // 允许编辑
            editTextResume.setEnabled(true);
            // 修改按钮文本
            buttonEdit.setText("禁止编辑");
            isEditing = true;
        }
    }

    // 提交简历
    private void submitResume(int userId) {
        // 获取用户信息
        userManager.getUserInformation(userId, new UserManager.UserInformationCallback() {
            @Override
            public void onSuccess(UserInformation userInformation) {
                // 获取简历内容
                String resumeContent = editTextResume.getText().toString();

                // 修改简历部分
                userInformation.setResume(resumeContent);

                // 调用更新用户信息的方法
                userManager.updateUserInformation(userId, userInformation, new UserManager.UserInformationCallback() {
                    @Override
                    public void onSuccess(UserInformation userInformation) {
                        // 提交成功
                        Toast.makeText(ResumeActivity.this, "简历已更新！", Toast.LENGTH_SHORT).show();
                        Log.d("ResumeActivity的submitResume方法","简历已经成功被更新");
                    }

                    @Override
                    public void onError(String errorMessage) {
                        // 提交失败
                        Toast.makeText(ResumeActivity.this, "提交失败: " + errorMessage, Toast.LENGTH_SHORT).show();
                    }
                });
            }

            @Override
            public void onError(String errorMessage) {
                // 获取用户信息失败
                Toast.makeText(ResumeActivity.this, "获取用户信息失败: " + errorMessage, Toast.LENGTH_SHORT).show();
            }
        });
    }
}